User interface for networks including virtual machines

ABSTRACT

A user interface for a virtual machine infrastructure enables a user to navigate a graph in a tabular format. The user interface simultaneously displays data associated with a selected node from a plurality of applications via view extensions provided by the applications. The user interface shows data associated with a node on which a navigation panel is focused, an anchor node, together with related nodes and edge categories including the edges connecting the related nodes to the anchor node. The user can peek at the data associated with a related node by selecting the node in the user interface and change the displayed data without changing the focus of the navigation panel. The user can also change the focus of the navigation panel to a related node via data displayed in a data panel or related nodes identified in the navigation panel.

BACKGROUND

Software applications, such as virtual machines (VMs), may be executed by a group, or “cluster,” of host computing devices. Each VM creates an abstraction of physical computing resources, such as a processor and memory, of the host executing the VM and executes a “guest” operating system, which, in turn, executes one or more software applications. The abstracted resources may be functionally indistinguishable from the underlying physical resources to the guest operating system and software applications.

At least some host computing devices are connected together to form one or more networks. In addition, at least some known cloud computing and/or datacenter environments include large numbers of host computing devices, and each computing device may include a plurality of VMs. Cloud computing and/or datacenter environments also include a plurality of network switches, datastores, and other devices or systems that support the host computing devices and VMs.

To ensure that the computing devices and/or other devices within a cloud computing environment and/or a datacenter operate efficiently and/or are configured properly, software management tools are often used. Such software management tools often display the computing devices and/or other devices in a tree or graphical view for monitoring. However, with large numbers of computing devices present in a cloud computing and/or datacenter environment, a tree view may become inconvenient, requiring a user to horizontally and/or vertically scroll through large sections of the tree within a relatively small application window. In addition, large numbers of computing devices and/or other devices may cause a graphical view to be visually convoluted and/or may require excessive computing resources to display the devices.

In addition, at least some known software management tools display data associated with computing devices in a segregated manner. In other words, the data is displayed only from the context of the application currently being accessed by the user. If the user wants to access other data available for a computing device that is supplied by another application, the user must exit the first application and access the second application, or must otherwise manually switch between applications. Accordingly, users may experience difficulty in identifying and/or diagnosing issues associated with computing devices.

SUMMARY

One or more embodiment disclosed herein describe an anchor node displayed in a navigation panel. Data associated with the anchor node is displayed in a data panel when the anchor node is selected by a user. At least one related node is identified in the navigation panel based on an edge category of an edge connecting the related node and the anchor node, and data associated with the related node is displayed in the data panel when the related node is selected. Selecting a node or edge category changes the data displayed in the data panel, but not the focus of the navigation panel. The focus of the navigation panel may be switched from the anchor node to the related node by the user.

This summary introduces a selection of concepts that are described in more detail below. This summary is not intended to identify essential features, nor to limit in any way the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary computing device.

FIG. 2 is a block diagram of virtual machines that are instantiated on a computing device, such as the computing device shown in FIG. 1.

FIG. 3 is a graphical view of an exemplary extensible network system that includes a plurality of host computing devices shown in FIG. 1.

FIG. 4 is a block diagram of an exemplary extensible infrastructure that may be used with the network system shown in FIG. 3.

FIG. 5 is a block diagram of an exemplary extensible user interface hierarchy that may be used with the infrastructure shown in FIG. 4.

FIGS. 6-11 are exemplary screen captures of a user interface provided by the infrastructure shown in FIG. 4.

FIG. 12 is a flowchart of an exemplary method for installing an application within the infrastructure shown in FIG. 4.

FIGS. 13-15 are additional screen captures of the user interface provided by the infrastructure shown in FIG. 4.

FIG. 16 is a flowchart of an exemplary method of displaying data in a display of a computing device, such as the computing device shown in FIG. 1.

FIG. 17 is a flowchart of an exemplary method of changing a focus of a navigation panel displayed in a display of a computing device, such as the computing device shown in FIG. 1.

FIG. 18 is a flowchart illustrating an exemplary method of updating configuration settings of nodes in a virtual machine infrastructure, such as the infrastructure shown in FIG. 4.

FIG. 19 is a flowchart illustrating another exemplary method of updating configuration settings of nodes in a virtual machine infrastructure, such as the infrastructure shown in FIG. 4.

DETAILED DESCRIPTION

Embodiments described herein provide an extensible infrastructure for representing a network system including a plurality of system objects such as computing devices and/or virtual machines (VMs). The infrastructure includes, in some embodiments, an application model, an object model, a resource model, and a user interface. In other embodiments, the infrastructure may include additional or fewer elements. The application model defines a hierarchical set of views to enable an application to navigate from an application entry point to a node representing a system object. The data model provides a set of views for representing data associated with nodes. In addition, the data model enables data associated with a node to be received from a first application being accessed, and receive data associated with the node from a second application without switching a focus from the first application or the node.

Accordingly, when an application views or displays data associated with a node, the application does not need to duplicate data from other applications for the node. Instead, the infrastructure enables a user to access the singular version of the node as it is shared between applications. In addition, administrators or users may access all data gathered for a node from a plurality of applications without having to switch between applications. The infrastructure and user interface are extensible, allowing an administrator or developer to add further extensions and interfaces to extend the functionality of the infrastructure and user interface in a customized manner.

FIG. 1 is a block diagram of an exemplary computing device 100. Computing device 100 includes a processor 102 for executing instructions. In some embodiments, computer-executable instructions are stored in a memory 104 for performing one or more of the operations described herein. Memory 104 is any device allowing information, such as executable instructions, configuration options (e.g., threshold values), and/or other data, to be stored and retrieved. For example, memory 104 may include one or more computer-readable storage media, such as one or more random access memory (RAM) modules, flash memory modules, hard disks, solid state disks, and/or optical disks.

Computing device 100 also includes at least one presentation device 106 for presenting information to a user 108. Presentation device 106 is any component capable of conveying information to user 108. Presentation device 106 may include, without limitation, a display device (e.g., a liquid crystal display (LCD), organic light emitting diode (OLED) display, or “electronic ink” display) and/or an audio output device (e.g., a speaker or headphones). In some embodiments, presentation device 106 includes an output adapter, such as a video adapter and/or an audio adapter. An output adapter is operatively coupled to processor 102 and configured to be operatively coupled to an output device, such as a display device or an audio output device.

The computing device 100 may include a user input device 110 for receiving input from user 108. User input device 110 may include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or a touch screen), a gyroscope, an accelerometer, a position detector, and/or an audio input device. A single component, such as a touch screen, may function as both an output device of presentation device 106 and user input device 110.

Computing device 100 also includes a network communication interface 112, which enables computing device 100 to communicate with a remote device (e.g., another computing device 100) via a communication medium, such as a wired or wireless packet network. For example, computing device 100 may transmit and/or receive data via network communication interface 112. User input device 110 and/or network communication interface 112 may be referred to as an input interface 114 and may be configured to receive information, such as configuration options (e.g., threshold values), from a user.

Computing device 100 further includes a storage interface 116 that enables computing device 100 to communicate with one or more datastores. In exemplary embodiments, storage interface 116 couples computing device 100 to a storage area network (SAN) (e.g., a Fibre Channel network) and/or to a network-attached storage (NAS) system (e.g., via a packet network). The storage interface 116 may be integrated with network communication interface 112.

FIG. 2 depicts a block diagram of virtual machines 235 ₁, 235 ₂ . . . 235 _(N) that are instantiated on a computing device 100, which may be referred to as a “host.” Computing device 100 includes a hardware platform 205, such as an x86 architecture platform. Hardware platform 205 may include processor 102, memory 104, network communication interface 112, user input device 110, and other input/output (I/O) devices, such as a presentation device 106 (shown in FIG. 1). A virtualization software layer, also referred to hereinafter as a hypervisor 210, is installed on top of hardware platform 205.

The virtualization software layer supports a virtual machine execution space 230 within which multiple virtual machines (VMs 235 ₁-235 _(N)) may be concurrently instantiated and executed. Hypervisor 210 includes a device driver layer 215, and maps physical resources of hardware platform 205 (e.g., processor 102, memory 104, network communication interface 112, and/or user input device 110) to “virtual” resources of each of VMs 235 ₁-235 _(N) such that each of VMs 235 ₁-235 _(N) has its own virtual hardware platform (e.g., a corresponding one of virtual hardware platforms 240 ₁-240 _(N)). Each virtual hardware platform includes its own emulated hardware (such as a processor 245, a memory 250, a network communication interface 255, a user input device 260 and other emulated I/O devices in VM 235 ₁).

In some embodiments, memory 250 in first virtual hardware platform 240 ₁ includes a virtual disk that is associated with or “mapped to” one or more virtual disk images stored in memory 104 (e.g., a hard disk or solid state disk) of computing device 100. The virtual disk image represents a file system (e.g., a hierarchy of directories and files) used by first virtual machine 235 ₁ in a single file or in a plurality of files, each of which includes a portion of the file system. In addition, or alternatively, virtual disk images may be stored in memory 104 of one or more remote computing devices 100, such as in a storage area network (SAN) configuration. In such embodiments, any quantity of virtual disk images may be stored by the remote computing devices 100.

Device driver layer 215 includes, for example, a communication interface driver 220 that interacts with network communication interface 112 to receive and transmit data from, for example, a local area network (LAN) connected to computing device 100. Communication interface driver 220 also includes a virtual bridge 225 that simulates the broadcasting of data packets in a physical network received from one communication interface (e.g., network communication interface 112) to other communication interfaces (e.g., the virtual communication interfaces of VMs 235 ₁-235 _(N)). Each virtual communication interface may be assigned a unique virtual Media Access Control (MAC) address that enables virtual bridge 225 to simulate the forwarding of incoming data packets from network communication interface 112. In an embodiment, network communication interface 112 is an Ethernet adapter that is configured in “promiscuous mode” such that all Ethernet packets that it receives (rather than just Ethernet packets addressed to its own physical MAC address) are passed to virtual bridge 225, which, in turn, is able to further forward the Ethernet packets to VMs 235 ₁-235 _(N). This configuration enables an Ethernet packet that has a virtual MAC address as its destination address to properly reach the VM in computing device 100 with a virtual communication interface that corresponds to such virtual MAC address.

Virtual hardware platform 240 ₁ may function as an equivalent of a standard x86 hardware architecture such that any x86-compatible desktop operating system (e.g., Microsoft WINDOWS brand operating system, LINUX brand operating system, SOLARIS brand operating system, NETWARE, or FREEBSD) may be installed as guest operating system (OS) 265 in order to execute applications 270 for an instantiated VM, such as first VM 235 ₁. Virtual hardware platforms 240 ₁-240 _(N) may be considered to be part of virtual machine monitors (VMM) 275 ₁-275 _(N) which implement virtual system support to coordinate operations between hypervisor 210 and corresponding VMs 235 ₁-235 _(N). Those with ordinary skill in the art will recognize that the various terms, layers, and categorizations used to describe the virtualization components in FIG. 2 may be referred to differently without departing from their functionality or the spirit or scope of the disclosure. For example, virtual hardware platforms 240 ₁-240 _(N) may also be considered to be separate from VMMs 275 ₁-275 _(N), and VMMs 275 ₁-275 _(N) may be considered to be separate from hypervisor 210. One example of hypervisor 210 that may be used in an embodiment of the disclosure is included as a component in VMware's ESX brand software, which is commercially available from VMware, Inc.

FIG. 3 is a graphical view of an exemplary extensible network system 300 that includes a plurality of host computing devices 100 (shown in FIG. 1) and/or VMs 235 ₁-235 _(N) (shown in FIG. 2) that are communicatively coupled together. In an embodiment, network system 300 represents a virtual and/or physical datacenter executing on one or more computing devices 100 and/or VMs 235 ₁-235 _(N).

In an embodiment, system 300 includes a plurality of nodes 302 that are each representative of at least one system object. The system objects may include one or more computing devices 100, VMs 235 ₁-235 _(N), network switches (not shown), datastores (not shown), and/or any other resource or device. Nodes 302 may be grouped by, or included within, one or more node types (not shown) and are related to each other by one or more edges 304. In addition, as described more fully herein, nodes 302 and node types are extensible such that an application may add new nodes 302 and/or node types to system 300 and/or nodes 302.

Each edge 304 represents a relationship or common characteristic of a pair of nodes 302. Edges 304 may include, without limitation, a parent-child relationship, a physical relationship (e.g., two VMs 235 ₁-235 _(N) may be instantiated within the same host computing device 100 and/or two computing devices 100 may be physically connected together), a common problem or error that each node 302 is experiencing, a common node type shared between nodes 302, and/or any other relationship that enables system 300 to function as described herein. In an embodiment, edges 304 may be grouped or defined by one or more edge categories (not shown in FIG. 3). In addition, as described more fully herein, edges 304 and edge categories are extensible such that an application may add new edges 304 and/or edge categories to system 300 and/or nodes 302.

In an embodiment, a plurality of applications 306 ₁-306 _(N) monitors and/or manages nodes 302 within system 300. Each application 306 ₁-306 _(N) monitors and/or manages at least a subset 308 of nodes 302 within system 300 such that each application 306 ₁-306 _(N) has or defines a view and/or a perspective for each node 302 within subset 308. Accordingly, an application boundary or scope 310 is defined by, or includes, subset 308 of nodes 302 within boundary 310. More specifically, each application 306 ₁-306 _(N) may identify or define one or more edge categories and/or node types that application 306 ₁-306 _(N) will manage and/or monitor, and subset 308 includes each node 302 that satisfies the edge categories and/or node types. The perspective includes the data, actions, and/or configuration settings for a node 302. In addition, application boundary 310 of one application 306 ₁ may overlap an application boundary 310 of another application 306 ₂ or applications 306 ₂-306 _(N) such that subsets 308 of applications 306 ₁-306 _(N) may overlap, or share common nodes 302. Accordingly, each application 306 ₁-306 _(N) may have a different perspective of a node 302 common to other applications 306 ₁-306 _(N) such that each application 306 ₁-306 _(N) may include a different amount and/or type of data, actions, and/or configuration settings for node 302.

In an embodiment, applications 306 ₁-306 _(N) may include, without limitation, vSphere, vCloud, View, Virtual Infrastructure (VI), VMware Update Manager (VUM) and/or Site Recovery Manager (SRM) brand software, which are available from VMware, Inc. Alternatively or additionally, applications 306 ₁-306 _(N) may include one or more third party and/or user-defined applications.

In some embodiments, a node 302 that currently is the focus (or is in context) of the application 306 ₁-306 _(N) being accessed is an anchor node 302. Nodes 302 that share one or more edges 304 with (i.e., are related to) anchor node 302 are related nodes 302.

FIG. 4 is a block diagram of an exemplary extensible virtual machine application infrastructure 401 that may be used to monitor and/or manage system 300 (shown in FIG. 3). More specifically, applications 306 ₁-306 _(N) (shown in FIG. 3) may “plug into,” or integrate with, application infrastructure 401 using one or more extensions (not shown) to monitor and/or manage nodes 302 (shown in FIG. 3) of system 300. FIG. 5 is a block diagram of an exemplary extensible user interface hierarchy 500 that may be used with infrastructure 401. FIGS. 6-11 are exemplary screen captures of a user interface 402 including a plurality of views implemented by applications 306 ₁-306 _(N) (shown in FIG. 3) using infrastructure 401.

In an embodiment, application infrastructure 401 and user interface 402 (and associated node information and views) are implemented and/or executed by one or more computing devices 100. For example, infrastructure 401 and user interface 402 are implemented by a plurality of computer-executable instructions and/or components stored within a memory, such as memory 104 or memory 250, and the instructions are executed by a processor, such as processor 102 or processor 245 (all shown in FIG. 2) to perform the functions described herein. In addition, user interface 402 is displayed to a user by presentation device 106 and input from a user is received by user input device 110 (both shown in FIG. 1).

Referring again to FIG. 4, in an embodiment, infrastructure 401 includes an application model 404, an object model 406, a resource model 408, and user interface 402. Each model 404, 406, and 408 and/or user interface 402 includes and/or defines templates, application programming interfaces (APIs), programming objects and components, user interfaces, and/or any other data and/or instructions that enables infrastructure 401 to function as described herein.

As described more fully herein, user interface 402 includes a plurality of views (not shown in FIG. 4) for managing and monitoring nodes 302. The views may be defined by, and/or provided by, application model 404, object model 406, and/or applications 306 ₁-306 _(N).

Resource model 408 defines a plurality of resource node types, such as physical resource nodes (also known as “backing nodes or objects”), virtual resource nodes, virtual consumer nodes, and container nodes. A physical resource node provides a resource. For example, a disk or storage area network (SAN) provides storage resources. A virtual resource node provides a layer of abstraction on top of the physical resource. For example, resource pools abstract central processing units (CPUs) and memory, datastores abstract storage disks, and a VMware Distributed Switch (vDS) brand software abstracts physical network interface cards (NICs). The resource abstraction may provide capabilities that cannot be assigned to the physical resource directly, like load balancing across multiple physical resources. A virtual consumer node, such as a VM 235 ₁-235 _(N), consumes a virtual resource, and container nodes organize or categorize other nodes.

Application model 404 defines an extensible hierarchy of views (shown in FIG. 5) that are exposed to applications 306 ₁-306 _(N) for applications 306 ₁-306 _(N) to access through one or more application extensions or plugins (also referred to as “view extensions” or “user interface extensions”). User interface 402 includes data from the objects and/or extensions of the hierarchy and presents the data, extensions, and/or views to a user. In addition, the views are extensible such that applications 306 ₁-306 _(N) may incorporate additional data and/or actions into views. Application model 404 enables one or more applications 306 ₁-306 _(N) to add data associated with applications 306 ₁-306 _(N) to existing task and feature areas of application model views, instead of building out separate sub-applications within applications 306 ₁-306 _(N). For example, if an application 306 ₁ shows data about a node 302, that application 306 ₁ may add the data to the existing view for that node 302. If an application 306 ₁ must expose configuration settings for services provided by application 306 ₁, such as electronic mail (email) or session management, that application 306 ₁ may add controls to a general administration or settings portion of the view. If an application 306 ₁ provides new nodes 302, data, use cases, and actions instead of augmenting an existing node 302, application 306 ₁ is also enabled to provide one or more filters, views, and/or inventories that represent the perspective of application 306 ₁ with respect to the subset 308 of nodes 302 (also known as an “inventory”) within application boundary 310.

In an embodiment, application model 404 enables user interface 402 to centralize data, settings, and actions (hereinafter referred to as “node information”) associated with nodes 302 such that users (through applications 306 ₁-306 _(N)) are able to configure settings for all applications 306 ₁-306 _(N) in one place, view all issues on a managed node 302 from one view, and the like. In addition, application model 404 reduces duplication between different applications 306 ₁-306 _(N). Instead of implementing multiple management, monitoring, or administration user interfaces or views, applications 306 ₁-306 _(N) can add data to the existing user interface 402 (e.g., to one or more views) defined by application model 404.

Referring to FIG. 5, user interface 402 is arranged or implemented in one or more hierarchies 500 of views. In an embodiment, hierarchy 500 includes a plurality of levels 502, such as an entry point 504, an inventory level 506, a node level 507, a category extension level 508, and/or an application-specific extension level 510. Each level 502 of hierarchy 500 includes its own views of nodes 302, edge categories, and/or system 300. In addition, applications 306 ₁-306 _(N) interface with, or extend, hierarchy 500 by inserting or installing an application extension (not shown) at one or more levels of hierarchy 500. Each application 306 ₁-306 _(N) may include a separate hierarchy 500, and/or may be at least partially integrated with a hierarchy 500 of another application 306 ₁-306 _(N).

In some embodiments, the term “extend” refers to augmenting or increasing a functionality of a component, device, or system. In addition, in some embodiments, the term “view” refers to a display, such as a window, tab, portlet, and/or any other display that enables an application 306 ₁-306 _(N) or another program or component to present graphical data and/or text to a user. In an embodiment, views defined by application model 404 and/or object model 406 are displayed in a portion of user interface 402.

Each application 306 ₁-306 _(N) may extend infrastructure 401 and/or user interface 402 to define an individual entry point 504 for accessing system 300 and/or initiating a workflow. Alternatively, an application 306 ₁ may not include an entry point 504. For example, an application 306 ₁ may only be configured to perform actions on nodes 302, and may not include views associated with nodes 302, or the application 306 ₁ may only provide additional data within preexisting views provided by other applications 306 ₂-306 _(N).

In an embodiment, inventory level 506 includes one or more inventories 512 that each identifies a plurality of nodes 302 related to an anchor node 302 by one or more edges 304. In addition, nodes 302 are grouped together by edge categories. Applications 306 ₁-306 _(N) may extend inventory level 506 by defining one or more application-specific inventories 512 and/or defining one or more application-specific edges 304 and/or node types. Selecting one or more nodes 302 or edge categories causes user interface 402 to display a view associated with the node 302 or edge category.

Node level 507 includes a selected or focused node 302 (also known as an anchor node). When a node 302 is selected from inventory level 506 (or from another level 502), data and/or one or more views associated with node 302 are displayed by user interface 402.

Category extension level 508 includes one or more category views 514 defined by object model 406, such as a summary view 516, a monitor view 518, a manage view 520, a related items view 522, and/or any other view. In an embodiment, category views 514 are associated with, and display data associated with, a node 302 selected at node level 507. An application 306 ₁ may extend category extension level 508 by inserting or installing an extension that adds data, configuration settings, and/or actions specific to application 306 ₁ into one or more category views 514 of category extension level 508.

Application-specific extension level 510 includes one or more application-specific views 524 defined by object model 406 and/or applications 306 ₁-306 _(N). More specifically, each application-specific view 524 of application-specific extension level 510 is associated with, and/or included within, a category view 514 of category extension level 508. An application 306 ₁ may extend application-specific extension level 510 by inserting or installing an extension that adds data, configuration settings, and/or actions specific to application 306 ₁ into one or more application-specific views 524 of application-specific extension level 510.

During operation, a user navigates through hierarchy 500 of views using a navigation panel (not shown in FIG. 5) of user interface 402. As the user navigates to category extension level 508 and/or application-specific extension level 510 of hierarchy 500, one or more associated category views 514 and/or application-specific views 524 are displayed to the user. In some embodiments, during navigation, data and views from multiple applications 306 ₁-306 _(N) are displayed simultaneously in a data panel (shown in FIG. 6).

Referring to FIG. 6, application model 404 provides a manage and monitor interface 601 in which applications 306 ₁-306 _(N) may plug into to add one or more application-specific views (not shown) for the management and/or monitoring of nodes 302 or application configuration settings. Manage and monitor interface 601 is positioned in a first, or navigation, panel 602 of user interface 402.

In an embodiment, application model 404 enables applications 306 ₁-306 _(N) to define entry points 504 into system 300. Manage and monitor interface 601 includes one or more links to entry points 504 in navigation panel 602. Manage and monitor interface 601 enables applications 306 ₁-306 _(N) to access and/or expose data, configuration settings, and/or actions (i.e., node information) for nodes 302, and enables such node information to be received from other applications 306 ₂-306 _(N) while in the context of a currently-focused application 306 ₁. The node information is displayed in a second, or data, panel 604 of user interface 402.

Referring to FIG. 7, a user may navigate hierarchy 500 of views for nodes 302 using navigation panel 602. More specifically, the user may select an entry point 504 to list or display one or more inventories 512 for the application 306 ₁ selected by entry point 504. For example, as illustrated in FIG. 7, the user may select Virtual Infrastructure (VI) entry point 702 to focus on the VI application 306 ₈ and to display inventories 512 associated with VI application 306 ₈. Inventories 512 may include one or more groups of overviews or dashboards 704, node inventories 706, third-party application extensions 708, and/or custom views or queries 710. Node inventories 706 display inventories of nodes 302 listed by edge categories 712. More specifically, edge categories 712 are listed based on, and determined by, the node type. In addition, edge categories 712 of node inventory 706 may be selected to move to a lower level of hierarchy within navigation panel 602 to display and focus on a node 302 within node inventory 706.

Application model 404 may also define an administration or services view (not shown) that enables applications 306 ₁-306 _(N) to plug into to offer configurations for services specific to applications 306 ₁-306 _(N), such as database connections, polling rates, and the like. Additionally, application model 404 may define an application-specific view (not shown) that enables applications 306 ₁-306 _(N) to add one or more views to offer application-specific user preferences and/or any other view that enables application model 404 to function as described herein.

Object model 406 defines a template for nodes 302 that are representative of system objects. More specifically, object model 406 categorizes node information such that each application 306 ₁-306 _(N) may provide different aspects or perspectives of node information, and may provide new node types and/or edge categories 712, while maintaining a substantially uniform interface and display for the node information.

Referring to FIG. 8, a plurality of object model views 801 is defined by object model 406 for nodes 302, and are positioned and displayed by user interface 402 within data panel 604 at a category extension level 508. In an embodiment, object model views 801 include, or are displayed within, a plurality of windows, menus, or tabs, such as a getting started tab (not shown), a summary tab 802, a monitor tab 804, a manage tab 806, a related items tab 808, a legacy tab (not shown), and an action menu (not shown in FIG. 8) of user interface 402. In addition, applications 306 ₁-306 _(N) may provide one or more application-specific views 524, such as tabs, menus, or portlets, as plugins or extensions to object model 406 at an application-specific extension level 510. In an embodiment, object model views 801 are positioned within data panel 604. In the embodiments shown in FIGS. 6-11, the getting started tab and the legacy tab are not displayed by user interface 402. Application-specific views 524 are also positioned within data panel 604 and below object model views 801.

The getting started tab provides an introduction to a selected node 302 (i.e., a node 302 selected within navigation panel 602), such as how node 302 fits into application 306 ₁ and how node 302 is used. The tab also provides links to common tasks or actions associated with node 302.

Summary tab 802 includes summary view 516 and provides identification information for a selected node 302 and identifies any issues or events requiring attention. In an embodiment, the identification information includes high level data that enables a user to uniquely identify node 302. The high level data includes properties such as the name of node 302, user-readable globally unique identifier (GUID) such as a hostname or internet protocol (IP) address, and life-cycle properties of node 302, such as a creation date of node 302. Summary tab 802 also includes status information for the selected node 302, such as visual representations of resource utilization data for node 302.

In an embodiment, the issues identified by summary tab 802 include high priority identified misconfigurations of node 302 and/or notifications that require immediate attention of a user. In addition, other suitable data may be shown on summary tab 802, and may be disabled or removed by the user if the data is not desired.

Referring to FIG. 9, monitor tab 804 includes monitor view 518 and displays node information for a selected or anchor node 302. In an embodiment, the node information includes runtime data describing a current operation of node 302, and/or historical data (not shown) for operation of node 302 in the past. For example, the runtime data may include a power state of a VM 235 ₁-235 _(N), a distributed resource scheduler (DRS) recommendation for a cluster (not shown), a connection state of a host computing device 100, and/or performance and alarm data for node 302. The historical data may include one or more logs, tasks, and/or events.

In an embodiment, monitor tab 804 includes a plurality of application-specific views 524 defined by object model 406 and/or by one or more applications 306 ₁-306 _(N), such as the focused application 306 ₁. Monitor tab 804 may include application-specific views 524 that are displayed in, for example, an issues tab 902 for displaying issues affecting or associated with node 302. Monitor tab 804 may also include a performance tab 904 for displaying performance data related to a past activity of node 302, resource consumption data (i.e., how node 302 is using the resources allocated to node 302, if applicable), and/or profile performance data (e.g., how node 302 is performing relative to the profiles and health status set for node 302). In addition, monitor tab 804 may include a task tab 906 for displaying a long term record of tasks for node 302, and an event tab 908 for displaying a long term record of events on node 302 and/or one or more logs for node 302. An application, such as focused application 306 ₁, may add or insert one or more application-specific tabs 910 to display application-specific data, configuration settings, and/or actions for node 302. If any data for monitor tab 804 is not relevant for a selected node 302, it may be removed or hidden.

It should be recognized that node information displayed within monitor tab 804 (e.g., displayed within application-specific views 524 and/or displayed within other views 801 defined by object model 406) may be within the context of one or more other applications 306 ₂-306 _(N) in addition to, or instead of, the focused application 306 ₂-306 _(N). More specifically, the node information displayed may be a part of the perspective of one or more other applications 306 ₂-306 _(N) in addition to, or instead of the perspective of the focused application 306 ₁. Accordingly, monitor tab 804 and/or other views 801 defined by object model 406 enables the focused application 306 ₁ to receive and display node information for the selected node 302 from other applications 306 ₂-306 _(N) without changing or leaving the focus of the currently focused application 306 ₁.

Referring to FIG. 10, manage tab 806 includes management properties of node 302 that affect how node 302 operates in system 300. The management properties are static properties that do not change unless the user or a policy changes them. In an embodiment, the management properties include resource allocation properties, node settings, profile definitions, alarm definitions, physical resource node properties (also known as “backing object properties”), tags, permission settings, and/or any other property or setting that enables manage tab 806 to function as described herein.

Resource allocation properties are configurable settings related to the resource types (if applicable) that node 302 exposes to related consumer nodes 302. Node settings include direct mutable properties of node 302, such as virtual hardware platform 240 ₁-240 _(N) (shown in FIG. 2) of a VM 235 ₁-235 _(N), and/or DRS settings of a cluster (not shown). Profile definitions identify any profile assigned to node 302 and, in some embodiment, enables the user to override the profile settings for node 302.

In addition, alarm definitions enable a user to define alarms for the selected node 302. Resource provision node properties display data for related nodes 302 that provide resources to the selected node 302. In an embodiment, tags include metadata that the user selects to identify or annotate the selected node 302, such as custom attributes and notes (e.g., descriptions of node 302). Permission settings identify which users and/or devices have authority to view or change the settings and/or properties of node 302. If one or more of the above properties or settings is not relevant to a given node type, it may be removed or hidden.

Referring to FIG. 11, related items tab 808 displays all or a portion of nodes 302 that related to the selected node 302 (i.e., all or a portion of nodes 302 sharing at least one edge 304 with selected node 302). More specifically, related items tab 808 identifies one or more edge categories 712, and displays all nodes 302 that share an edge 304 in edge categories 712 with the selected node 302. In addition, for each related node displayed in related items tab 808, one or more columns 1101 of node information is displayed. In some embodiments, columns 1101 of node information are selected based on the node type of the selected node 302 and/or the node type of the related nodes 302.

Columns 1101 may also be extended by application 306 ₁ such that related items tab 808 includes one or more application-specific columns 1101 of node information. Such columns 1101 represent one or more edge categories 712 of selected node 302. For example, if the Hosts tab 1102 is selected as illustrated in FIG. 11, all nodes 302 related to selected node 302 by edge category 712 (e.g., all nodes 302 that have a node type set to host computing device 100) are displayed.

It should be recognized that related nodes 302 displayed within related items tab 808 may be within an application boundary 310 of one or more other applications 306 ₂-306 _(N) in addition to, or instead of, the focused application 306 ₁. Accordingly, related items tab 808 enables the focused application 306 ₁ to receive and display node information for the selected node 302 from other applications 306 ₂-306 _(N) (i.e., from the perspective of other applications 306 ₂-306 _(N)) without switching or changing the focus away from the currently focused application 306 ₁.

In each view 801 defined by object model 406 and displayed by user interface 402, one or more actions to be performed on the selected node 302 may be displayed in an action menu 1104 or tab. When a node 302 is displayed in a view 801, the full set of actions available to be performed on the selected node 302 is available to the user in action menu 1104. More specifically, actions from each application 306 ₁-306 _(N) perspective are available to the user for the selected node 302 within the context of the focused application 306 ₁. However, the context of the focused application 306 ₁ may define which actions are displayed to the user for selection.

As described herein with reference to FIGS. 6-11, each application 306 ₁-306 _(N) is represented by one or more high-level inventories 512 in navigation panel 602. Inventories 512 are “jumping off points” or secondary entry points for workflows and views that display and manipulate nodes 302 of system 300 that applications 306 ₁-306 _(N) share between each other.

A user or an administrator begins a workflow at an entry point 504 and/or inventory 512 for a selected (i.e., focused) application 306 ₁. The user or administrator progresses through the workflow by navigating through hierarchy 500 to specific views 801 and nodes 302. The views 801 of a selected node 302 show the perspective of application 306 ₁ for node 302 (e.g., node information), as well as the perspectives of all other applications 306 ₂-306 _(N) that encompass node 302 within application boundaries 310. Because the node information for all applications 306 ₁-306 _(N) is displayed and/or available in the details of node 302 within the views 801, the focused application 306 ₁ is saved from duplicating common data of node 302 that is provided by other applications 306 ₂-306 _(N).

After arriving at a particular view 801 or node 302, the administrator can conclude the workflow by manipulating node 302 (e.g., actions associated with node 302) for the originating application 306 ₁, or for another application 306 ₂-306 _(N) as needed. In one embodiment, node 302 is manipulated by changing data, at least one configuration setting, and/or at least one action for node 302, for example, that is displayed in data panel 604. By allowing an administrator to easily view and configure settings or perform actions for multiple applications 306 ₁-306 _(N) without having to leave a single node view 801, user interface 402 effectively switches from one application 306 ₁ to another application 306 ₂-306 _(N) without having to change user interfaces 402 or applications 306 ₁-306 _(N). This approach achieves a very high degree of integration that greatly improves administration efficiency.

FIG. 12 is a flowchart of an exemplary method 1200 for installing, or adding, an application 306 ₁-306 _(N) (shown in FIG. 3) within infrastructure 401 (shown in FIG. 4). Method 1200 is executed by a computing device 100 (shown in FIG. 1). For example, a plurality of computer-executable instructions is embodied within a computer-readable medium, such as memory 104 or memory 250. The instructions, when executed by a processor, such as processor 102 or processor 245, cause the processor to execute the steps of method 1200 and/or to function as described herein.

In an embodiment, method 1200 optionally includes defining 1202 at least one new node type for use with a new application 306 ₁ to be installed, or added, within infrastructure 401 (shown in FIG. 4). The new node type definition includes, for example, a list of all actions available to be performed on nodes 302 (shown in FIG. 3) of the new node type, a list of data and/or data types associated with nodes 302 of the new node type, and/or a list of configuration settings associated with nodes 302 of the new node type.

A plurality of nodes 302 associated with application 306 ₁ (e.g., within a boundary 310 of application 306 ₁) is added 1204 to system 300 (shown in FIG. 3) and/or infrastructure 401. The plurality of nodes 302 associated with application 306 ₁ is also referred to as a subset 308 (shown in FIG. 3) of nodes 302 within application boundary 310. In addition, nodes 302 that are added 1204 to system 300 by application 306 ₁ may be of the new node type and/or of node types pre-defined by application model 404, object model 406, and/or other applications 306 ₂-306 _(N). The added nodes 302 are connected together by at least one edge 304 such that each node 302 is connected to at least one other node 302.

Edge categories 712 (shown in FIG. 7) are defined 1206 for each node 302 within subset 308 and are added to infrastructure 401. In an embodiment, application 306 ₁ may define new edge categories 712, or use existing edge categories 712 that have been defined and/or used within system 300. In addition, an application perspective is defined 1208 for each node 302 of subset 308. In an embodiment, the perspective includes node information such as data, actions, and/or configuration settings for a node 302.

Subset 308 of nodes 302 is connected 1210 to other nodes 302 in system 300 by one or more edges 304 such that nodes 302 are integrated into system 300. An entry point 504 (shown in FIG. 5) for application 306 ₁ is identified 1212 and is added 1214 to at least one view defined by application model 404 (and to hierarchy 500 (shown in FIG. 5)). In an embodiment, an application extension, such as entry point 504, is added 1214 to navigation panel 602 (shown in FIG. 6) at a selectable level of hierarchy 500 within views 801 defined by application model 404. The view 801 in which entry point 504 is added 1214 provides entry point 504 to a user along with at least one other entry point 504 from at least one other application 306 ₂-306 _(N). Alternatively, application 306 ₁ does not include an entry point 504, and steps 1212 and 1214 are omitted.

At least one perspective is added 1216 to at least one view 801 defined by object model 406 and displayed by user interface 402 for each added node 302 such that the added perspective is provided to the user by view 801 along with at least one other perspective from at least one other application 306 ₂-306 _(N). In addition or alternatively, at least one action is added 1218 to at least one action menu 1104 (shown in FIG. 11) defined by object model 406 such that the added action is provided to the user by action menu 1104 along with at least one other action from at least one other application 306 ₂-306 _(N). In some embodiments, the actions associated with the installed application 306 ₁ nodes 302 and/or node types are added 1218 to each action menu 1104 defined by object model 406. Alternatively, no actions are added 1218 to a view 801 and/or an action menu 1104 such that only at least one perspective is added 1216 to at least one view 801.

In one embodiment, if application 306 ₁ defines 1202 a new node type, application 306 ₁ also defines the actions and/or data that take precedence when displaying the new type of node 302. In doing so, applications 306 ₁-306 _(N) can specify which actions and/or data are appropriate or most relevant for a type of node 302 in the context of a focused node 302. For example, if a datastore node 302 includes a list of VMs 235 ₁-235 _(N) inside of node 302, the actions and data (e.g., columns 1101 (shown in FIG. 11)) that are displayed for the list of VMs 235 ₁-235 _(N) are relevant to storage. In addition, application 306 ₁ creates views 801 (e.g., to display node information) that are extensible such that other applications 306 ₂-306 _(N) may add data, configuration settings, and/or actions to the created views.

FIGS. 13-15 are additional exemplary screen captures of user interface 402 including a plurality of views implemented by applications 306 ₁-306 _(N) (shown in FIG. 3) using infrastructure 401 (shown in FIG. 4).

Referring to FIG. 13, an anchor node 1301 is displayed within navigation panel 602, and edge categories 712 associated with anchor node 1301 are also displayed within navigation panel 602. More specifically, edge categories 712 are displayed and/or determined by the node type of anchor node 1301 such that different edge categories 712 are displayed for different node types.

Data associated with anchor node 1301 is displayed in data panel 604 when anchor node 1301 is selected within navigation panel 602. The data associated with anchor node 1301 is displayed in one or more views 801 as described above with reference to FIGS. 6-11. In addition, when anchor node 1301 is selected within navigation panel 602, a first application 306 ₁ (shown in FIG. 3) displays a first set of data 1302 associated with anchor node 1301 within data panel 604 (e.g., within view 801) and a second application 306 ₂ displays a second set of data 1304 associated with anchor node 1301 within data panel 604 (e.g., within view 801).

Referring to FIG. 14, when a user selects an edge category 712 for anchor node 1301, using user input device 110, a plurality of related nodes 1401 is identified and displayed within navigation panel 602. Related nodes 1401 are related to anchor node 1301 by an edge 304 (shown in FIG. 3) of the selected edge category 712. If the user selects a related node 1402 in navigation panel 602, data associated with the selected related node 1402 is displayed in data panel 604. In one embodiment, anchor node 1301 has a node type defined by a first application 306 ₁ and selected related node 1402 has a node type defined by a second application 306 ₂.

In addition, a new anchor node 1301 may be selected using options or actions provided in one or more views 801 of data panel 604. For example, the related node 1402 selected within navigation panel 602 may be selected as the new anchor node 1301 using options or actions provided in data panel 604.

Referring to FIG. 15, a user changes or switches a focus, or anchor node 1301, of navigation panel 602 to a related node 1402 (shown in FIG. 14) by inputting a command into navigation panel 602 or data panel 604. An edge category 712 of anchor node 1301 and an edge category of related node 1402 may be identified. In one embodiment, at least one edge category 712 of anchor node 1301 is different than edge category 712 of related node 1402. For example, as illustrated in FIG. 14, anchor node 1301 includes an edge category 712 of “virtual machines,” and as illustrated in FIG. 15, the related node 1402 (i.e., the new anchor node 1301) includes an edge category 712 of “datastores” and/or may include any other edge category 712.

In an embodiment, navigation panel 602 is animated when switching the focus of navigation panel 602 from anchor node 1301 to related node 1402. More specifically, the animation includes causing navigation panel 602 to slide or be displaced to a side such that a representation of related node 1402 and edge category 712 associated with related node 1402 slide in to replace a representation of anchor node 1301 and edge category 712 associated with anchor node 1301. Anchor node 1301 and edge category 712 associated with anchor node 1301 slide out and are not displayed by navigation panel 602. Data associated with the new anchor node 1301 is displayed within data panel 604 when the new anchor node 1301 is selected by the user.

FIG. 16 is a flowchart illustrating an exemplary method 1600 of displaying data in a display of a computing device, such as presentation device 106 of computing device 100 (both shown in FIG. 1). In an embodiment, the displayed data is associated with an anchor node, such as anchor node 1301 (shown in FIG. 14).

Method 1600 is executed by a computing device 100 (shown in FIG. 1). For example, a plurality of computer-executable instructions is embodied within a computer-readable medium, such as memory 104 or memory 250 (shown in FIG. 1). The instructions, when executed by a processor, such as processor 102 or processor 245 (shown in FIG. 1), cause the processor to execute the steps of method 1600 and/or to function as described herein.

In an embodiment, method 1600 includes identifying 1602, in navigation panel 602 (shown in FIG. 6), an anchor node 1301 (shown in FIG. 13) that includes a type (e.g., a node type). At least one edge category 712 (shown in FIG. 7) determined by the type of anchor node 1301 is identified 1604 in navigation panel 602.

In some embodiments, a related node 1402 (shown in FIG. 14) associated with anchor node 1301 by an edge 304 (shown in FIG. 3) in edge category 712 is identified 1606 in navigation panel 602 when edge category 712 is selected. Data associated with anchor node 1301 is displayed 1608 in data panel 604 (shown in FIG. 6) when anchor node 1301 is selected in navigation panel 602. In addition, data associated with related node 1402 is displayed 1610 in data panel 604 when related node 1402 is selected in navigation panel 602. In one embodiment, anchor node 1301 has a node type defined by a first application 306 and related node 1402 has a node type defined by a second application 306 different from first application 306.

FIG. 17 is a flowchart illustrating an exemplary method 1700 of changing a focus of a navigation panel, such as navigation panel 602 (shown in FIG. 6), displayed in a display of a computing device, such as in presentation device 106 of computing device 100 (both shown in FIG. 1). Method 1700 is executed by a computing device 100. For example, a plurality of computer-executable instructions is embodied within a computer-readable medium, such as memory 104 or memory 250 (shown in FIG. 1). The instructions, when executed by a processor, such as processor 102 or processor 245 (shown in FIG. 1), cause the processor to execute the steps of method 1700 and/or to function as described herein.

In an embodiment, method 1700 includes identifying 1702, in navigation panel 602, an anchor node 1301 (shown in FIG. 13) that includes a type (e.g., a node type). At least one edge category 712 (shown in FIG. 7) determined by the type of anchor node 1301 is identified 1704 in navigation panel 602. A related node 1402 (shown in FIG. 14) associated with anchor node 1301 by an edge 304 (shown in FIG. 3) in edge category 712 is identified 1706 in navigation panel 602.

A focus of navigation panel 602 is switched 1708 to related node 1402 in response to receiving input from a user at an input device of computing device 100, such as user input device 110 (shown in FIG. 1). In an embodiment, switching 1708 the focus includes identifying 1710, in navigation panel 602, at least one edge category 712 determined by a type (e.g., node type) of related node 1402. The edge category 712 determined by the type of related node 1402 is not an edge category 712 determined by the type of anchor node 1301.

In an embodiment, the focus of navigation panel 602 may be switched 1708 to a related node 1402 in response to receiving input from a user within navigation panel 602 and/or data panel 604. If a related node 1402 is selected within data panel 604, related node 1402 may be “opened” if anchor node 1301 has an edge 304 (shown in FIG. 3) and/or edge category 712 associated with related node 1402. If related node 1402 is opened, the context or focus of navigation panel 602 remains with anchor node 1301, but data and/or actions associated with related node 1402 may be displayed within data panel 604. However, if the anchor node 1301 does not have an edge 304 and/or edge category 712 associated with related node 1402, the focus of navigation panel 602 is switched 1708 to related node 1402 if related node 1402 is selected within data panel 604.

FIG. 18 is a flowchart illustrating an exemplary method 1800 of updating configuration settings of nodes in a virtual machine infrastructure, such as nodes 302 (shown in FIG. 3) in infrastructure 401 (shown in FIG. 4). Method 1800 is executed by a computing device 100 (shown in FIG. 1). For example, a plurality of computer-executable instructions is embodied within a computer-readable medium, such as memory 104 or memory 250 (shown in FIG. 1). The instructions, when executed by a processor, such as processor 102 or processor 245 (shown in FIG. 1), cause the processor to execute the steps of method 1800 and/or to function as described herein.

In an embodiment, method 1800 includes identifying 1802, in navigation panel 602 (shown in FIG. 6), an anchor node 1301 (shown in FIG. 13) that includes a type (e.g., a node type). Method 1800 also includes displaying 1804, in data panel 604 (shown in FIG. 6), data associated with a first application 306 (shown in FIG. 3) defining the type of anchor node 1301, and data associated with a second application 306 different from the first application 306. In addition, the displayed data of first application 306 and second application 306 is associated with anchor node 1301.

A configuration setting of anchor node 1301 in the second application 306 is changed 1806 in response to receiving input from a user via an input device of a computing device, such as user input device 110 (shown in FIG. 1) of computing device 100. The configuration setting is changed 1806 in response to the input from the user without changing a focus of navigation panel 602 from the first application 306 to the second application 306.

FIG. 19 is a flowchart illustrating another exemplary method 1900 of updating configuration settings of nodes in a virtual machine infrastructure, such as nodes 302 (shown in FIG. 3) of infrastructure 401 (shown in FIG. 4). Method 1900 is executed by a computing device 100 (shown in FIG. 1). For example, a plurality of computer-executable instructions is embodied within a computer-readable medium, such as memory 104 or memory 250 (shown in FIG. 1). The instructions, when executed by a processor, such as processor 102 or processor 245 (shown in FIG. 1), cause the processor to execute the steps of method 1900 and/or to function as described herein.

In an embodiment, method 1900 includes identifying 1902, in navigation panel 602 (shown in FIG. 6), an anchor node 1301 (shown in FIG. 13) that includes a type (e.g., a node type). Method 1900 also includes displaying 1904, in data panel 604 (shown in FIG. 6), data associated with a first application 306 (shown in FIG. 3) defining the type of anchor node 1301, and data associated with a second application 306 different from the first application 306. The data associated with each of the first application 306 and the second application 306 is associated with a related node 1402 (shown in FIG. 14) having a type defined by the second application 306.

A configuration setting of the first application 306 is changed 1906 in response to receiving input from a user via an input device of a computing device, such as user input device 110 (shown in FIG. 1) of computing device 100. The configuration setting of the first application 306 is changed 1906 in response to the input from the user without changing a focus of navigation panel 602 from the first application 306 to the second application 306.

As described herein, system 300 includes a plurality of applications 306 ₁-306 _(N). Each application 306 ₁-306 _(N) defines at least one edge category 712 and provides at least one view extension to extend, or add to, the functionality of system 300 and/or infrastructure 401. System 300 also includes a plurality of nodes 302 that each has a node type. In one embodiment, application 306 ₁-306 _(N) defines the node type for each node 302 within a boundary 310 of application 306 ₁-306 _(N). Each node 302 is connected to at least one other node 302 by an edge 304 in an edge category 712 associated with the type of node 302. In addition, system 300 includes a virtual machine infrastructure 401 including a user interface 402 for displaying data from the view extension of each application 306 ₁-306 _(N).

User interface 402 is accessed by a user to navigate, in a tabular format (see, e.g., FIGS. 6-11), a graph formed by the plurality of nodes 302 (e.g., system 300) connected by edges 302. In some embodiments, user interface 402 simultaneously displays data from view extensions of two or more applications 306 ₁-306 _(N). The data displayed is associated with an anchor node 1301 (i.e., a node 302 that is the focus of navigation panel 602 and/or user interface 402).

In the embodiments described herein, user interface 402 includes an entry point level including at least one extension (such an entry point 504) added by an application 306 ₁. Data of the extension added at the entry point level by application 306 ₁ is displayed in presentation device 106 to a user when user interface 402 is initially accessed by the user. User interface 402 also includes an inventory level 506 having at least one extension added by application 306 ₁. Data of the extension added at inventory level 506 by application 306 ₁ is displayed to the user when the user selects an extension at the entry point level corresponding to the extension at inventory level 506.

In addition, user interface 402 includes a category extension level 508 having at least one extension added by application 306 ₁. Data of an extension added at category extension level 508 by application 306 ₁ is displayed to the user when the user focuses user interface 402 (e.g., navigation panel 602) on a node 302 displayed by an extension added at inventory level 506. Category extension level 508 includes a plurality of tabs or views 801 under which an extension added by application 306 ₁ displays data of the extension. In an embodiment, user interface 402 includes an application-specific extension level 510 having at least one extension added by application 306 ₁. Data of an application-specific extension is displayed to the user when the user focuses user interface 402 on a node 302 having data of the application-specific extension associated with node 302.

In an embodiment, each level 502 of user interface 402 may be implemented by, or embodied within, an associated computer-readable component. Each computer-readable component is executed by a processor to perform the functions described herein.

EXAMPLES

A method displays data in a display of a computing device. The data is associated with an anchor node. The method identifies, in a navigation panel, an anchor node having a type. The method identifies, in the navigation panel, at least one edge category determined by the type of the anchor node. The edge category describes a relationship between the anchor node and a related node and an edge is the relationship between the anchor node and the related node. The method identifies, in the navigation panel, a related node associated with the anchor node by an edge in the edge category when the edge category is selected. The method further displays, in a data panel, data associated with the anchor node when the anchor node is selected in the navigation panel. The method further displays, in a data panel, data associated with a related node when the related node is selected in the navigation panel. The method further displays, in a data panel, data associated with a related node associated with the anchor node when an edge category including an edge connecting the related node to the anchor node is selected in the navigation panel. The anchor node has a type defined by a first application and the related node has a type defined by a second application different from the first application.

A computer readable storage media has computer executable instructions. The computer executable instructions include a navigation panel component. The navigation panel component identifies, in a navigation panel, an anchor node having a type, and at least one edge category determined by the type of the anchor node. The edge category describes a relationship between the anchor node and a related node and an edge is the relationship between the anchor node and the related node. The navigation panel component further identifies, in the navigation panel, a related node associated with the anchor node by an edge in the edge category when the edge category is selected. The computer readable storage media further includes a data panel component for displaying, in a data panel, data associated with the anchor node when the anchor node is selected in the navigation panel. The computer readable storage media further includes a data panel component for displaying, in a data panel, data associated with a related node when the related node is selected in the navigation panel. The computer readable storage media further includes a data panel component for displaying, in a data panel, data associated with a related node associated with the anchor node when an edge category including an edge connecting the related node to the anchor node is selected in the navigation panel. The anchor node has a type defined by a first application and the related node has a type defined by a second application different from the first application.

A user interface for a virtual machine infrastructure includes a navigation panel and a data panel. The navigation panel, displayed on the display of a computing device, identifies an anchor node having a type; at least one edge category determined by the type of the anchor node; and a related node having a type different from the type of the anchor node, wherein the navigation panel switches a focus of the navigation panel in response to receiving input from a user at an input device of the computing device. The data panel, displayed on the display of the computing device displays data associated with the anchor node, or the edge category when the edge category is selected by a user at an input device of the computing device. The input from the user at the input device of the computing device is a request to change the focus of the navigation panel to the related node and is originated by the user from the data panel of the user interface. The input from the user at the input device of the computing device is a request to change the focus of the navigation panel to the related node and is originated by the user from the navigation panel of the user interface. The anchor node has a type defined by a first application and the related node has a type defined by a second application, and wherein the second application is different from the first application. When the focus of the navigation panel is switched from the anchor node to the related node, the navigation panel is animated to slide to a side such that a representation of the related node and the edge category associated with the related node that is not an edge category determined by the type of the anchor node slides in to replace the representation of the anchor node and the edge category defined by the type of the anchor node as the representation of the anchor node and the edge category defined by the type of the anchor node slides to the side. The navigation panel switches the focus of the navigation panel back to the anchor node in response to input from the user, the input including selecting a back command associated with the navigation panel.

A computer readable storage media having computer executable instructions includes a navigation panel component. The navigation panel component identifies, in a navigation panel, an anchor node having a type, at least one edge category determined by the type of the anchor node, and a related node associated with the anchor node by an edge in the edge category. The navigation panel component switches the focus of the navigation panel to the related node in response to receiving input from a user at an input device of the computing device. Switching the focus includes identifying, in the navigation panel, at least one edge category determined by a type of the related node, wherein the edge category determined by the type of the related node is not an edge category determined by the type of the anchor node. The computer readable storage media further includes a data panel component for providing a data panel, wherein the input from the user is a request to focus the navigation panel on the related node and is originated from the data panel displayed in the display of the computing device. The input from the user is a request to focus the navigation panel on the related node and is originated from the navigation panel. The anchor node has a type defined by a first application and the related node has a type defined by a second application, wherein the second application is different from the first application. Switching the focus of the navigation panel from the anchor node to the related node further includes animating the navigation panel to slide to a side such that a representation of the related node and the edge category associated with the related node that is not an edge category determined by the type of the anchor node slides in to replace the representation of the anchor node and the edge category defined by the type of the anchor node as the representation of the anchor node and the edge category defined by the type of the anchor node slides to the side. The computer readable storage media further includes instructions for switching the focus of the navigation panel back to the anchor node in response to input from the user, the input including selecting a back command associated with the navigation panel.

A user interface for a virtual machine infrastructure includes a navigation panel and a data panel. The navigation panel displayed by a display of a computing device identifies an anchor node having a type. The data panel is also displayed by the display of the computing device. The data panel displays data associated with a first application and data associated with a second application different from the first application, the first application defining the type of the anchor node, wherein the user interface receives input from a user at an input device of the computing device and changes a configuration setting of the anchor node in the second application in response to the input from the user. The navigation panel identifies a related node that is connected to the anchor node by an edge in an edge category associated with the type of the anchor node. The input received from the user includes a request to change the configuration setting of the second application.

A computer readable storage media includes computer executable instructions, the computer executable instructions including a navigation panel component and a data panel component. The navigation panel component identifies, in a navigation panel, an anchor node, the anchor node having a type. The data panel component displays, in a data panel, data associated with a first application defining the type of the anchor node and data associated with a second application different from the first application, wherein the data is associated with the anchor node. The data panel component changes, in response to receiving input from a user via an input device of a computing device and without changing a focus of the navigation panel, a configuration setting of the anchor node in the second application in response to the input from the user. The navigation panel component identifies, in the navigation panel, a related node that is connected to the anchor node by an edge in the edge category associated with the type of the anchor node. The input received from the user includes a request to change the configuration setting of the second application.

A method of updating configuration settings of nodes in a virtual machine infrastructure is provided. The method identifies, in a navigation panel, an anchor node having a type. The method displays, in a data panel, data associated with a first application defining the type of the anchor node and data associated with a second application different from the first application, wherein the data associated with each of the first and second applications is associated with a related node having a type defined by the second application. The method changes, in response to receiving input from a user via an input device of a computing device and without changing a focus of the navigation panel, a configuration setting of the first application in response to the input from the user. The related node is connected to the anchor node via an edge, wherein the edge is in an edge category associated with the type of the anchor node. A focus of the navigation panel is the related node. The input received from the user includes a request to change the configuration setting of the first application.

A computer readable storage media having computer executable instructions includes a navigation panel component and a data panel component. The navigation panel component identifies, in a navigation panel, an anchor node having a type. The data panel component displays, in a data panel, data associated with a first application defining the type of the anchor node and data associated with a second application different from the first application, wherein the data associated with each of the first and second applications is associated with a related node having a type defined by the second application. The data panel component changes, in response to receiving input from a user via an input device of a computing device and without changing a focus of the navigation panel, a configuration setting of the first application in response to the input from the user. The related node is connected to the anchor node via an edge, wherein the edge is in an edge category associated with the type of the anchor node. The input received from the user includes a request to change the configuration setting of the first application. A focus of the navigation panel is the related node.

Exemplary Operating Environment

The extensible infrastructure as described herein may be performed by a computer or computing device. A computer or computing device may include one or more processors or processing units, system memory, and some form of computer-readable media. Exemplary computer-readable media include flash memory drives, digital versatile discs (DVDs), compact discs (CDs), floppy disks, and tape cassettes. By way of example and not limitation, computer-readable media comprise computer storage media and communication media. Computer storage media store information such as computer-readable instructions, data structures, program modules, or other data on tangible, physical media. Communication media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Combinations of any of the above are also included within the scope of computer-readable media.

Although described in connection with an exemplary computing system environment, embodiments of the disclosure are operative with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the disclosure include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

Embodiments of the disclosure may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the disclosure may be implemented with any number and organization of such components or modules. For example, aspects of the disclosure are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the disclosure may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.

Aspects of the disclosure transform a general-purpose computer into a special-purpose computing device when programmed to execute the instructions described herein.

The operations illustrated and described herein may be implemented as software instructions encoded on a computer-readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip.

The order of execution or performance of the operations in embodiments of the disclosure illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the disclosure may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the disclosure.

When introducing elements of aspects of the disclosure or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.

Having described aspects of the disclosure in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the disclosure as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense. 

1. A user interface for a virtual machine infrastructure comprising a plurality of applications and a plurality of nodes connected by edges, the user interface comprising: a navigation panel displayed on the display of a computing device, the navigation panel identifying: an anchor node having a type; and at least one edge category determined by the type of the anchor node, wherein the edge category represents a plurality of edges connecting the anchor node to related nodes; and a data panel displayed on the display of the computing device, the data panel displaying data associated with the anchor node when the anchor node is selected.
 2. The user interface of claim 1, wherein the at least one edge category describes a relationship between the anchor node and a related node and an edge is the relationship between the anchor node and the related node.
 3. The user interface of claim 1, wherein the navigation panel identifies a related node associated with the anchor node by an edge in the at least one edge category when the at least one edge category is selected.
 4. The user interface of claim 1, wherein the navigation panel identifies a related node when the at least one edge category is selected and the related node is connected to the anchor node by an edge in the at least one edge category, and wherein the data panel displays data associated with the related node when the related node is selected in the navigation panel.
 5. The user interface of claim 1, wherein the data panel displays data associated with a related node connected by an edge to the anchor node when an edge category including the edge connecting the related node to the anchor node is selected in the navigation panel.
 6. The user interface of claim 1, wherein the anchor node has a type defined by a first application and the related node has a type defined by a second application different from the first application.
 7. A method of changing the focus of a navigation panel of a user interface for a virtual machine infrastructure, the navigation panel displayed in a display of a computing device, the method comprising: identifying, in the navigation panel, an anchor node having a type; identifying, in the navigation panel, at least one edge category determined by the type of the anchor node, the edge category representing a plurality of edges connecting the anchor node to related nodes; identifying, in the navigation panel, a related node associated with the anchor node by an edge in the at least one edge category; switching the focus of the navigation panel to the related node in response to receiving input from a user at an input device of the computing device, the switching comprising: identifying, in the navigation panel, at least one edge category determined by a type of the related node, wherein the at least one edge category determined by the type of the related node is not an edge category determined by the type of the anchor node.
 8. The method of claim 7, wherein the input from the user is a request to focus the navigation panel on the related node and is originated from a data panel displayed in the display of the computing device.
 9. The method of claim 7, wherein the input from the user is a request to focus the navigation panel on the related node and is originated from the navigation panel.
 10. The method of claim 7, wherein the anchor node has a type defined by a first application and the related node has a type defined by a second application, wherein the second application is different from the first application.
 11. The method of claim 7, wherein switching the focus of the navigation panel from the anchor node to the related node further comprises animating the navigation panel to slide to a side such that a representation of the related node and the at least one edge category associated with the related node that is not an edge category determined by the type of the anchor node slides in to replace the representation of the anchor node and the at least one edge category defined by the type of the anchor node as the representation of the anchor node and the at least one edge category defined by the type of the anchor node slides to the side.
 12. The method of claim 7 further comprising switching the focus of the navigation panel back to the anchor node in response to input from the user, the input comprising selecting a back command associated with the navigation panel.
 13. A user interface for a virtual machine infrastructure, the virtual machine infrastructure comprising a plurality of applications and a plurality of nodes connected by edges, the user interface comprising: a navigation panel displayed by a display of a computing device, the navigation panel identifying an anchor node having a type; a data panel displayed by the display of the computing device, the data panel displaying data associated with a first application and data associated with a second application different from the first application, the first application defining the type of the anchor node, wherein the user interface receives input from a user at an input device of the computing device and changes a configuration setting of the anchor node in the second application in response to the input from the user.
 14. The user interface of claim 13, wherein the navigation panel identifies a related node, the related node connected to the anchor node by an edge in an edge category associated with the type of the anchor node.
 15. The user interface of claim 13 wherein the input received from the user comprises a request to change the configuration setting of the second application.
 16. A method of updating application configuration settings of nodes in a virtual machine infrastructure, the virtual machine infrastructure comprising a plurality of applications and a plurality of nodes connected by edges, the method comprising: identifying, in a navigation panel, an anchor node having a type; displaying, in a data panel, data associated with a first application defining the type of the anchor node and data associated with a second application different from the first application, wherein the data associated with each of the first and second applications is associated with a related node having a type defined by the second application; changing, in response to receiving input from a user via an input device of a computing device and without changing a focus of the navigation panel, a configuration setting of the first application in response to the input from the user.
 17. The method of claim 16, wherein the related node is connected to the anchor node via an edge, wherein the edge is in an edge category associated with the type of the anchor node.
 18. The method of claim 16, wherein the input received from the user comprises a request to change the configuration setting of the first application.
 19. The method of claim 16, wherein a focus of the navigation panel is the related node.
 20. A user interface for a virtual machine infrastructure, the virtual machine infrastructure comprising a plurality of applications and a plurality of nodes connected by edges, the user interface comprising: a navigation panel displayed by a display of a computing device, the navigation panel identifying an anchor node having a type and a related node connected to the anchor node by an edge in an edge category associated with the type of the anchor node; a data panel displayed by the display of the computing device, the data panel displaying data associated with a first application and data associated with a second application different from the first application, the first application defining the type of the anchor node and the second application defining a type of the related node, wherein the user interface receives an input from a user via an input device of the computing device and changes a configuration setting of the first application in response to the input from the user.
 21. The user interface of claim 20 wherein the input received from the user comprises a request to change the configuration setting of the first application.
 22. The user interface of claim 20 wherein the navigation panel is focused on the related node. 